package com.example.LinkedListConstructor;

import java.util.LinkedList;
import java.util.Arrays;
import java.util.ArrayList;
// 带集合参数的构造方法
public class LinkedListConstructionExample2 {
    public static void main(String[] args) {
        // 创建一个ArrayList作为数据源
        ArrayList<String> colorList = new ArrayList<>();
        colorList.add("红色");    // 向ArrayList添加元素
        colorList.add("蓝色");    // 向ArrayList添加元素
        colorList.add("绿色");    // 向ArrayList添加元素

        // 使用带集合参数的构造方法
        // 用ArrayList中的元素初始化LinkedList
        LinkedList<String> colors = new LinkedList<>(colorList);

        System.out.println("从ArrayList创建的链表: " + colors);
        // 输出: 从ArrayList创建的链表: [红色, 蓝色, 绿色]

        // 使用Arrays.asList创建集合并初始化LinkedList
        // Arrays.asList返回一个固定大小的列表
        LinkedList<Integer> numbers = new LinkedList<>(
                Arrays.asList(10, 20, 30, 40, 50)
        );

        System.out.println("数字链表: " + numbers);
        // 输出: 数字链表: [10, 20, 30, 40, 50]

        // 演示链表的操作
        numbers.add(60);        // 在链表末尾添加元素
        numbers.removeFirst();  // 移除第一个元素
        numbers.add(2, 25);     // 在指定位置插入元素

        System.out.println("操作后的数字链表: " + numbers);
        // 输出: 操作后的数字链表: [20, 30, 25, 40, 50, 60]
    }
}